دورهمی برنامه نویسی

شی گرایی چیست و چه تحولی در دنیای برنامه نویسان ایجاد کرد؟

شی گرایی چیست و چه تحولی در دنیای برنامه نویسان ایجاد کرد؟
شی گرایی چیست
سلام دوستان امروز می خواهیم درباره شی گرایی چیست، صحبت کنیم تا بدانید که چرا به یکی از مهم ترین ها در برنامه نویسی تبدیل شده است؟ مگر زبان های غیر شی گرایی چه مشکلی داشتند؟ پس با ما همراه شوید.
 
برنامه نویسی شی گرا(OOP) چیست
 
Object Orient Programming شیوه ای از برنامه نویسی است که موجودیت‌های نرم افزار را به صورت شی یا Object می‌بیند. قبل از ظهور برنامه نویسی شی گرا ، برنامه‌ها اغلب به شکل رویه ای نوشته می‌شد یعنی برنامه‌ها به توابع تقسیم می‌شدند. 
اما با بزرگ شدن نرم افزار، برنامه نویسان مجبور به تکرار کدها به صورت مکرر می‌شدند. توابع در قسمت‌های مختلف به صورت نامرتب و تو در تو یکدیگر را صدا می‌زدند و برنامه به اصلاح به یک کد Spagetti(اسپاگتی) تبدیل می‌شد. یعنی چون توابع و قطعات کد، به هم وابسته و در هم ریخته بودند در نتیجه تغییر یک تابع باعث به هم ریختن توابع زیادی می‌شد.
پس از ظهور برنامه نویسی شی گرا، توابع و متغیرهای مرتبط در واحدهایی به اسم کلاس (Class) جمع شدند و اشیا از روی این کلاس‌ها ساخته می‌شوند و  به این ترتیب صاحب متدها (Method) و ویژگی‌های (Attribute) آن کلاس‌ می‌شوند. همینطور کلاس‌ها می‌توانند ویژگی‌ها یا توابع را از یکدیگر به ارث ببرند. به این ویژگی ارث بری یا Inheritance می‌گوییم.
 
4 اصل پایه ای برای ساخت کلاس ها در برنامه نویسی شی گرایی:
 
بعد از شناخت برنامه نویسی شی گرایی باید چهار اصل پایه‌ای برای ساخت کلاس‌ها را بدانید که عبارت است از: 
 
  • Abstraction
فرض کنیم در اتاقی نشسته‌ایم و فردی از ما می‌پرسد که لپ تاپ کجاست؟ ما هم جواب فرد مد نظر را داده و می‌گوییم روی «میز» است. وقتی ما واژه ی میز را به زبان می آوریم، هرگز نمی‌گوییم که لپ تاپ روی میزی است که چوبی است، رنگ آن قهوه ای روشن است، روی آن یک شیشه قرار دارد، چهار پایه دارد، طول و عرض آن فلان اندازه است و … ما صرفاً واژه ی میز را به زبان آورده و طرف مقابل کاملاً متوجه می‌شود که منظور ما کدام میز است! هم ما و هم طرف مقابل مان که در اتاق حضور داریم تجربیاتی در برخورد با شیئ به نام «میز» داشته و داریم که به ما کمک کند تا منظور از میز را متوجه شویم. واژه ی Abstraction به معنی «انتزاعی بودن» است. یعنی چیزی که در حد یک ایده است و وجود خارجی ندارد یا این که نمی‌شود آن را لمس کرد و در برنامه نویسی شیء گرا سبب میشود که ما به جای تمرکز روی یک نمونه ی عینی از چیزی، روی مفهوم آنها متمرکز شویم. 
 
  • Polymorphism
آخرین اصل از اصول برنامه نویسی شیء گرا Polymorphism نام دارد. Poly به معنی «چندین» است و Morph هم به معنی «شکل» است که روی هم رفته می‌توان آن را به «چند شکلی» ترجمه کرد. 
به عبارت دیگر، پلی مورفیسم در جاوا به شما اجازه می دهد که یک رابط تعریف کرده و چندین پیاده سازی از آن داشته باشید. به زبان ساده تر، با استفاده از این قابلیت می توان توابع یا متغیرهای مرجع را طوری ایجاد نمود، که در قسمت های مختلف برنامه رفتار متفاوتی داشته باشند. Polymorphism یکی از بخش های مهم شیءگرایی می باشد که در مطلب بعدی بیشتر درباره آن صحبت میکنیم.
 
  • Inheritance
به زبان ساده یعنی «استفاده ی مجدد از کدهای از قبل نوشته شده» اما معنی لغوی آن «وراثت» است. برای روشن‌تر شدن این مسأله مثالی عملی می زنیم.  در زبان‌هایی همچون ++C این امکان در اختیار برنامه نویس قرار گرفته تا بتواند از بیش از یک کلاس والد ارث بری کند که چنین قابلیتی تحت عنوان Multiple Inheritance یا «وراثت چندگانه» شناخته می شود. اگر چه چنین قابلیتی دست برنامه نویسان را خیلی باز می گذارد، اما در عین حال منجر به پیچیده‌تر شدن برنامه هم میشود و به همین دلیل، برخی زبان‌های برنامه نویسی همچون جاوا، سی شارپ، آبجکتیو سی، روبی و … به هیچ وجه اجازه ی ارث بری از بیش از یک کلاس والد را به برنامه نویس نمی دهند.
 
  • Encapsulation
زمانی که ما Attribute ها و رفتارهای  یک آبجکت را در کپسولی فرضی قرار داده و آن‌ها را کنار یکدیگر قرار دهیم در واقع از مفهوم Encapsulation.  در شی گرایی استفاده میکنیم.همچنین خواهیم توانست دسترسی به بخش یا بخش‌هایی از یک کلاس یا آبجکتی که بر اساس آن کلاس نوشته شده را محدود کنیم. 
 
مفاهیم پایه ای در شی گرایی
 
  • شی (Object): یک موجودیت اﺳﺖ ﺑﮕﻮﻧﻪ ای ﮐﻪ دارای ﻫﻮﻳﺖ ﺑﻮده و ﻗﺎدر ﺑﻪ ﺑﺮوز رﻓﺘﺎر و ﺛﺒﺖ ﺣﺎﻻت ﺧﻮد ﻣﯽ ﺑﺎﺷﺪ.
 
  • صفت (property): هر شی یکسری ﺧﺼﻮﺻﯿﺎت دارد ﮐﻪ ﺑﻪ آﻧﻬﺎ  ﺻﻔﺖ ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد و ﯾﮏ مقدار و ارزش مشخصی برای آن به ازای هر شی می تواند، وجود داشته باشد. مانند طول، ارتفاع، رنگ و … .
 
  • روش (Method): هر شی در واقع یک سری رفتار دارد که به آن ها روش یا متد، گفته می شود. ﻣﺘﺪ در واﻗﻊ  ﭘﺎﺳﺦ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ آن ﺷﯽ در ﻣﻘﺎﺑل تحریکات ﻣﺤﯿﻂ از ﺧﻮد ﻧﺸﺎن می دهد.
 
  • کلاس (Class): به مجموعه ای از اشیا که دارای ویژگی و رفتار مشترک باشند، کلاس می گویند. یک class نمونه ی اولیه ای است که هر object از روی آن ساخته می شود.کلاس دانشجو، کلاس انسان، کلاس ماشین و … کلاس ها مانند نقشه های ساختمان هستند. .ﯾﻚ ﻛﻼس، ﻧﻘﺸﻪ اﯾﺠﺎد ﯾﻚ ﺷﯽ از ﻛﻼس است. همانطور که می توانیم خانه های زیادی از روی یک نقشه بسازیم، می توانیم تعدادی شی از روی یک کلاس، نمونه سازی کنیم.
 
دلیل استفاده از برنامه نویسی شی گرایی:
در حالت عادی شما کل برنامه را در قالب دستورات و توابع پشت سر هم می‌نویسید (Procedural) و برای تغییر هرچیزی از برنامه احتیاج دارید تا کل ساختار برنامه را بررسی کرده و موارد مورد نیاز را تغییر دهید.
 
فرض کنید در حال نوشتن برنامه‌ای در خصوص مدیریت خودروها هستید، شما برای هر مدل خودرو چندین خط کد می‌نویسید، در ادامه تصمیم می‌گیرید ویژگی جدیدی به خودروهای خود اضافه کنید، مثلا میزان شتاب خودرو، در این صورت باید کل دستورات برنامه را جستجو کرده و در تمام خطوط این ویژگی جدید را به تمامی خودروها اضافه کنید.
 
اما اگر برنامه‌ی خود را با استفاده از مفهوم شئ‌گرایی نوشته باشید در این صورت تنها کافیست این ویژگی (Attribute) جدید را به کلاس اصلی برنامه اضافه کنید تا سایر اشیا (خودروها) نیز این ویژگی جدید را به ارث ببرند و آن را درون خود داشته باشند، در این صورت دیگر احتیاجی نیست تک به تک خطوط برنامه را دستخوش تغییر کنید.
 
علاوه بر آن به دلیل ویژگی‌های خاصی که در برنامه‌نویسی شئ‌گرا حاکم است، دسترسی به داده‌های درون کلاس از بیرون امکان‌پذیر نیست و این مورد می‌تواند در حفظ امنیت برنامه‌ها به شما کمک کند.
 
مزایای برنامه‌نویسی شئ‌گرا چیست؟
 
  1. افزایش امنیت برنامه
  2. کاهش هزینه نگهداری
  3. قابلیت استفاده مجدد
  4. تحلیل ساده‌تر برنامه
  5. قابلیت سازمان دهی بهینه تر کدها
  6. عدم نیاز به نوشتن کدهای تکراری و قابلیت‌هایی که قبلا پیاده‌سازی شده‌اند و صرف جویی در استفاده از منابع
  7. قابلیت تقسیم برنامه به برنامه‌های کوچک تر اما مستقل
 
خب دوستان ما سعی کردیم تا مفهوم شی گرایی چیست را به زبانی ساده برای شما بیان کنیم و امیدواریم که مطلب مورد رضایت شما قرار گرفته باشد.
+ نوشته شده در  شنبه 27 دی 1399ساعت 16:26  توسط fattahi 

چه دلایلی سی شارپ را مهم کرده است؟

چه دلایلی سی شارپ را مهم کرده است؟

سلام دوستان امیدوارم که حال شما خوب باشد. امروز می خواهیم دلایلی که باعث شده سی شارپ همچنان به عنوان یک زبان قدرتمند برای یادگیری باقی بماند را به شما معرفی کنی. پس تا پایان با ما همراه باشید.

دلایل یادگیری سی شارپ:

  • یادگیری آسان

با  اینکه سی شارپ در مقایسه با اجداد خود یعنی سی و سی پلاس پلاس نامی مشابه دارد، اما یادگیری آن برای افراد تازه کار بسیار ساده است. همچنین سی شارپ یک زبان امن برای یادگیری است یعنی کد های شما را در زمان کامپایل بررسی کرده و پیغام ها و خطاها را در صورت نیاز برای توقف برنامه صادر میکند و خودش حافظه را به صورت خودکار مدیریت می‌کند تا مجبور به تخصیص حافظه برای داده های خود نباشید.

  • پشتیبانی توسط شرکت مایکروسافت

با توجه به پشتیبانی گسترده مایکروسافت از آن، محبوبیت سی شارپ به این زودی ها از بین نمیرود. این زبان تقریبا ً به مدت بیست سال است که در توسعه برنامه های مختلف استفاده میشود و در این مدت ویژگی های فوق العاده ای به آن اضافه شده است. سی شارپ با استفاده از کتابخانه قدرتمند خود یعنی LINQ برای کنترل ساختار داده ها و اشیای کد شما طراحی شما شده است.

محیط توسعه یکپارچه مایکروسافت، ویژال استودیو نام دارد که به زبان سی شارپ نوشته شده است. در حالی که به هر زبانی در ویژوال استادیو میتوانید برنامه نویسی کنید، اما این محیط قدرتمند به صورت خاص برای زبان سی شارپ بهینه سازی شده است.

  • مناسب برای بازی سازی 

ما برای این دسته از افراد یک خبر خوب داریم و آن یادگیری سی‌شارپ برای بازیسازی است. شما با سی‌شارپ میتوانید در موتور بازی سازی یونیتی که یکی از موتورهای بازیسازی معروف و محبوب میباشد برنامه نویسی کنید. این موتور بازیسازی روز به روز در حال پیشرفت و محبوب شدن میباشد به طوری که این روزها میتواند شانه به شانه موتور بازیسازی آنریل بایستد.

  • اجرا شدن کد سی‌شارپ در همه جا

فرض کنید شما بعد از ماه ها وقت گذاشتن یک برنامه نوشتید که خیلی هم محبوب شده و اکنون قصد دارید که برنامه تان را برای یک سیستم عامل دیگر مثل اندروید نیز منتشر کنید تا کاربران اندروید نیز بتوانند از برنامه شما استفاده کنند. اگر زبانی که برنامه را با آن نوشته باشید فقط مخصوص یک سیستم عامل باشد شما مجبور خواهید شد برای انتشار برنامه تان به زبان دیگری روی بیاورید و چه بسا که باید علاوه بر زمان برای نوشتن برنامه تان زمانی نیز برای یادگیری آن زبان بگذارید. اما اگر شما با زبانی مثل زبان سی‌شارپ یک برنامه نوشته باشید به راحتی میتوانید آن را برای بسیاری از سیستم عامل ها منتشر کنید. پس این برای یک برنامه نویس میتواند خیلی مهم باشد که برنامه اش بتواند در هر پلتفرمی  اجرا شود.

اگر شما قصد داشته باشید که اپلیکیشن های موبایل طراحی کنید برای اندروید باید زبان java را یاد بگیرید و برای iOS باید swift را یاد بگیرید. یعنی برای طراحی و توسعه اپلیکیشن های موبایل باید دو زبان مجزا را یاد بگیرید که این خود، کار سخت و زمان بری میباشد. زامارین برای مقابله با این مشکل طراحی شده است و شما میتوانید با کدنویسی سی‌شارپ برای هر دو سیستم عامل موبایل یعنی iOS و اندروید برنامه خود را کمپایل  و همینطور از یک زبان  برنامه نویسی میتوانید برای طراحی رابط گرافیکی در هر دو سیستم عامل موبایل نیز بهره ببرید.

  • داشتن جامعه بزرگ

اول از همه، اندازه جامعه مهم است زیرا جامعه برنامه‌نویسی بزرگتر، پشتیبانی بیشتری را نیز فراهم خواهد کرد. همان‌طور که شما در دنیای برنامه‌نویسی قدم می‌گذارید، به زودی متوجه خواهید شد که پشتیبانی امری  حیاتیست. علاوه‌براین، هر چه جامعه بزرگ‌تر باشد، افراد بیشتری هم برای ساخت ابزارهای مفید جهت توسعه زبانی خاص وجود خواهند داشت و سی شارپ نیز بزرگترین جمعه پشنیبانی را دارد از انجمن ها مثل استک آور فلو گرفته تا خود شرکت مایکروسافت و ......

و حیاتی ترین دلیل یادگیری سی شارپ تضمین موقعیت شغلی شما در ایران و خارج از کشور است و برای اطمینان پیدا کردن از این موضوع میتوانید به آگهی های استخدامی زبان سی شارپ سر بزنید.

البته این نکته هم باید در نظر بگیرید که یادگیری سی شارپ مقدمه ای برای فعالیت شما در حوزه وب، طراحی اپلیکیشن و .... است که برای متخصص شدن در هر حوزه باید تکنولوژی مربوط به آن را به خوبی یاد بگیری. مثلا اگر قصد دارید به یک طراح وب تبدیل شوید بعد از حرفه ای شدن در زبان سی شارپ باید به سراغ ASP.Net MVC Core بروید.

خب دوستان امیدوارم که مطلب مورد رضایت شما قرار گرفته باشد. شما هم اگر دلیل دیگری را میشناسید در قسمت نظرات با ما به اشتراک بگذارید.

+ نوشته شده در  دوشنبه 22 دی 1399ساعت 21:16  توسط fattahi 

بین سی شارپ و جاوا کدام یک را انتخاب کنم؟

بین سی شارپ و جاوا کدام یک را انتخاب کنم؟
در یک مسابقه‌ی نهایی، سی شارپ و جاوا همزمان به خط پایان رسیده‌اند، اما هیچ کدام قبول نمی‌کردند که به نفع دیگری کنار برود. به همین دلیل برنامه‌نویس‌ها هم مانده‌اند که با وجود این همه ‌توانایی ، کدام را انتخاب کنند و یادگیری کدام یک از آنها برای افراد تازه ‌وارد مفیدتر خواهد بود؟ ما هم تصمیم گرفتیم تا زبان‌های برنامه ‌نویسی سی شارپ و جاوا را باهم بررسی کنیم، تا هم برنده معلوم بشود و هم شما بدانید از کجا باید شروع کنید ؟
این هم بدانید که براساس شاخص Tiobe، آموزش سی شارپ و جاوا برای سال های متوالی در بین پنج زبان مشهور برنامه نویسی در جهان معرفی شد.
 
زبان جاوا چگونه طراحی شد؟
 
یک روز تیم مهندسی شرکت میکروسیستم سان نشسته‌ بودند و داشتند قهوه می‌خوردند که ناگهان یکی از اعضای تیم گفت:«ای بابا! خسته شدم انقدر با این همه عدد و علامت کلنجار رفتم و کد نوشتم، یعنی میشود روزی به زبان آدمیزاد با این سیستم‌ها حرف زد؟» 
و یکباره تمامی افراد حاضر در شرکت یک‌صدا گفتند:«چرا نمی‌شود؟» و اینطوری بود که جاوا در حدود سال 1995 متولد شد.
 
جاوا محبوبیت خود را چگونه کسب کرد؟

جاوا شباهت زیادی به زبان‌های c  و c++ دارد، اما سطح شی گرایی جاوا از c++ بالاتر و البته امنیت بیشتری هم دارد.
شرکت سان خیلی تنوع طلب بود به همین خاطر تا توانست روی ورژن‌های مختلف جاوا، اسم‌های عجیب گذاشت. مرلین، موستانگ، tiger و دلفین. اینها فقط اسامی عجیب چند تا از نسخه‌های جاوا بودند که در چند سال اخیر به بازار عرضه شدند.
همچنین ابزارها، پلت‌فرم‌ها یا کتابخانه‌های خیلی زیادی از این زبان پشتیبانی می‌کند.
به خاطر امنیت بالای جاوا بسیاری از شرکت‌های بزرگ و دولتی، برای نوشتن برنامه‌هایشان به سراغ این زبان می‌روند.
حوزه‌ی اصلی و تخصصی جاوا، ساخت اپلیکشن در حوزه‌ی اندروید است؛ اصلا اندروید از همان اول، تحت نظر جاوا توسعه پیدا کرد و برای همین است که بدون مشورت با جاوا آب هم نمی‌خورد.
 
چه شد که سی شارپ به وجود آمد؟
 
چند سال بعد از تولد جاوا، مایکروسافت چون از قابلیت‌های جاوا خوشش آمد، رقابت سختی بین این دو شرکت شکل گرفت و بالاخره بعد از کلی کش و قوس، مایکروسافت سرانجام یک زبان ساخت و اسمش را گذاشت باحال یا کول.
 چون نتوانستند یک لوگوی درست و درمان با اسم کول بسازند، دست آخر اسم بچه‌ی باحالشان را c# گذاشتند.
C sharp  مثل جاوا شی‌گرا است و سطحش از زبان‌های c و c++ بالاتر است.  اما نکته‌ی اساسی در رابطه با سی‌شارپ، وابستگی زیادش به سیستم عامل است یعنی از همان بچگی اضطراب جدایی داشت و اصلا نمی‌خواست به شکل مستقل عمل کند. خلاصه انقدر گریه و زاری کرد تا مایکروسافت برایش یک اتاق کار در همان خانه‌ی خودشان یعنی ویندوز ساخت و اسمش را گذاشت محیط  .net .  بعدها که کار و بار سی شارپ گرفت نسخه‌های دیگری از .net مثل .net core و asp.net هم ارائه شد تا  برنامه‌نویس‌های سی شارپ از آن‌ها استفاده کنند.
همین وابستگی، یکی از تفاوت‌های اصلی دو زبان جاوا و سی شارپ است، جاوا به راحتی می‌تواند مستقل از سیستم به کارش ادامه بدهد، اما سی شارپ وابسته به محیط .net است و بدون آن کاربردی ندارد، البته بعدها معلوم شد .net چقدر خوب است، مثلا می‌تواند کدهای اضافی و غیر ضروری را شناسایی و آن‌ها را پاک کند.
از آن‌جایی که سی شارپ خیلی حسود است، با خودش گفت نمی‌شود که جاوا بتواند در همه‌ی سیستم‌ها اجرا بشود، بعد من این‌جا فقط در ویندوز بمانم، برای همین به سراغ رفیقش .net رفت آن هم در رفاقت کم نگذاشت و با ایجاد زبان میانی، کاری کرد که برنامه‌های نوشته‌شده توسط c#  در سایر سیستم عامل‌ها هم بتوانند اجرا بشوند. مثلا اگر شما یک برنامه برای سیستم اندروید بنویسید، می‌توانید با ابزارهای موجود در .net و با کمی تغییر، آن‌ برنامه ‌را در سیستم عامل دیگری هم اجرا کنید، البته به شرطی که فریم‌ورک .net روی سیستم دوم هم نصب شده‌باشد.
سی شارپ خیلی هوای سیستم‌ها را دارد، بنابراین اگر حس کند یک کد ممکن است به سیستم آسب‌بزند، بلافاصله مثل صاعقه از غیب ظاهر می‌شود و اجازه‌ی نوشتن و یا اجرای کد در مراحل بعد را نمی‌دهد.
سی‌شارپ یک زبان کامپایلر است و سرعت اجرای خوبی دارد، بنابراین بسیاری از استارتاپ‌ها برای انجام فعالیت‌های مختلف به سراغش می‌روند. بازی‌سازها هم البته حسابی با سی شارپ رفیق هستند و به کمک ابزار unity3d مرزهای دنیای خیال و واقعیت را جا‌به‌جا می‌کنند.
هر قدر جاوا در محیط با اندروید راحت است، سی‌ شارپ هم در محیط ویندوز آزاد و رها است و به هیچ برنامه‌ای نه نمی‌گوید، پس اگر عاشق محصولات مایکروسافت هستید و یا از محیط ویندوز خوشتان می‌آید، بهتر است هر چه سریع‌تر به سراغ .net و زبان سی شارپ بروید.
سی شارپ در ایران و دنیا بسیار محبوب است و کتابخانه‌ها و فریم‌ورک‌های زیادی از آن پشتیبانی می‌کنند، مایکروسافت هم هر روز با یکی دو ابزار جدید مثل زامارین، راه را برای توسعه و بهبود کارکرد سی شارپ فراهم می‌کند.
 
تفاوت های اصلی بین سی شارپ و جاوا چیست؟
 
  1. یادگیری
گفتیم سی شارپ به محیط .NET محدود است؟ خب این محدودیت موقع یادگیری یک مزیت بزرگ محسوب می‌شود، چون شما می‌توانید به راحتی و با صرف زمانی به مراتب کمتر، سر از کار همه‌ی ابزارهای .NET دربیاورید و خیلی زودتر راهتان را در این فریم‌ورک پیدا کنید. از طرف دیگر به خاطر استقبال بسیاری از برنامه‌نویس‌های داخلی از سی شارپ، تقریبا روزی نیست که یک ویدیوی آموزشی برای بهتر کار کردن با این زبان، تولید نشود.
اما اجتماعی بودن جاوا، این‌جا به ضررش تمام شد. جاوا درست مثل یک ربات است که از دست های مختلفی تشکیل شده و این دست‌های اضافی، همان فریم‌ورک‌های کمکی جاوا هستند؛ پس طبیعی است که یادگرفتن جاوا خیلی سخت‌تر از سی شارپ باشد.
موضوع دیگر بحث شی گراییست، یعنی یادگرفتن شی‌گرایی در جاوا به مراتب سخت تر از سی شارپ است.
 
  1. بازار کار 
 
به خاطر ساده‌تر بودن کارکردن با  سی شارپ و همچنین وجود جعبه ‌ابزار و فریم ورک قدرتمندی مثل .net تقریبا بیشتر برنامه‌نویس‌های ایرانی در زمینه‌ی ساخت نرم‌افزار ترجیح می‌دهند به سرزمین c# کوچ کنند.
سرعت کار با سی شارپ هم کمی بالاتر از جاوا است و از آن‌جایی که استارتاپ جماعت همیشه به دنبال کاهش هزینه‌هاست، بنابراین خیلی طبیعی است که c#  با بیشتر استارتاپ‌ها دوست باشد.
 
توسعه‌ی وب و نرم‌افزارهای تحت وب هم یکی از تخصص‌های اصلی این زبان است.
برای بازی‌سازی هم بسیاری از شرکت‌ها ترجیح می‌دهند به سراغ سی شارپ بروند، چرا که با وجود UNITY 3D ساخت بازی راحت‌تر است و البته در زمان و هزینه هم به مقدار قابل توجهی می‌توان صرفه‌جویی کرد.
پس اگر از کار با استارتاپ‌ها یا بازی‌سازی‌ در داخل کشور لذت می‌برید، می‌توانید با خیال راحت به سراغ سی شارپ بروید.
جاوا تا همین چند وقت پیش، حاکم بی چون و چرای ساخت اپلیکیشن بود، تا این‌که مایکروسافت، زامارین را معرفی کرد و حالا جاوا باید کمی عقب‌نشینی کند، چون سی شارپ هم در زمینه‌ی ساخت اپلیکیشن حرف‌های زیادی برای گفتن دارد. هر چند اگر مایلید در محیط اندروید کار کنید، بهتر است به سراغ جاوا بروید.
پای java به مجلس هم باز شده‌است، بسیاری از اداره‌های دولتی بزرگ مجبور هستند به خاطر امنیت بالای جاوا، از این زبان برای نوشتن برنامه‌هایشان استفاده کنند، از طرف دیگر به نظر می‌رسد جاوا برای انجام محاسبات بزرگ کاربردی‌تر باشد.
اوضاع البته در خارج از کشور متفاوت است و بسیاری از شرکت‌ها هنوز هم برای ساخت اپلیکیشن و ساخت نرم‌افزار اول از همه به سراغ جاوا می‌روند و از وقتی که جاوا با اوراکل رفیق شد، در خارج از کشور یکه ‌تازی می‌کند و در زمینه‌ی ساخت نرم‌افزارهای بانکداری و … حسابی پرکاربرد است.
 
 بالاخره سی شارپ یا جاوا؟
 
 سی شارپ یک زبان وابسته به سیستم است، هر چند با ارائه ورژن‌های جدید .NET تقریبا این مشکل هم برطرف شده، اما محیط .NET هنوز هم طبق سیاست‌های مایکروسافت چندان OPEN SOURCE نیست.
در مقابل جاوا، به سیستم خاصی وابسته نیست و به کمک ماشین جاوا به راحتی می‌توانید بین دنیای سیستم‌ها سفر کنید.
یادگیری سی‌شارپ به خاطر ساده‌تر بودن و محدود بودن به یک فریم‌ورک خاص، خیلی راحت‌تر است و باکمی تلاش می‌توانید به راحتی اسب چموش سی شارپ را رام کنید.  
با تمام این حرف‌ها هیچ کس نمی‌تواند بین سی شارپ یا جاوا یکی را به عنوان بهترین زبان برای آموزش برنامه‌نویسی انتخاب کند چرا که هر کدام از این زبان‌ها ویژگی‌ها و قابلیت‌های خودشان را دارند. بر همان اساس می‌توانند در برخی فعالیت‌ها مفیدتر باشند و در نهایت این شما هستید که باید بر اساس رشته‌ی کاری مورد علاقه‌ خود یکی از این دو زبان را انتخاب و تا آخر کار همراهش شوید.
+ نوشته شده در  سه شنبه 9 دی 1399ساعت 16:37  توسط fattahi 

از آرایه در سی شارپ در چه مواقعی باید استفاده کرد؟

از آرایه در سی شارپ در چه مواقعی باید استفاده کرد؟
اولین چیزی که معمولا در برنامه‌نویسی آموزش داده می‌شود، مقداردهی به متغیرها است. برنامه‌های ساده و تمرینی اکثرا با مقداردهی به یک متغیرمثل X) ) شروع می‌شوند.
اما هرچه جلوتر بروید و وارد دنیای برنامه‌نویسی شوید، نیاز به ذخیره و کار با اطلاعات به صورت دسته‌ای را بیشتر حس می‌کنید. اینجاست که متغیرها دیگر جوابگو نیستند و اگر هم باشند، وقت زیادی را از شما خواهند گرفت. برای حل این مشکل سی شارپ آرایه ها را معرفی کرد. یک آرایه یک نوع داده ای خاص است که می تواند تعداد مشخصی مقدار را در خود به صورت دنباله ای از مقادیر ذخیره کند.
نحوه تعریف آرایه
آرایه با دستور کلی زیر تعریف می‌شود:
 
<span style="font-size: 16px;">type[] arrayName;</span>
 type نوع داده‌های آرایه را مشخص می‌کند (int، double یا…) و در قسمت arrayName نام منتخب برنامه‌‌نویس قرار می‌گیرد. 
روش های مقداردهی یک آرایه
در زبان برنامه نویسی سی شارپ با 5 روش مختلف می توانیم مقدار دهی آرایه ها را انجام دهیم. 
  1. میتوانیم با استفاده از شماره  Index به عنصر مورد نظر دسترسی داشته باشیم و مقدار دهی آن را انجام دهیم.
 string[] leaingSite = new string[10];
leaingSite[0] = "bugeto.net";
  1. این امکان نیز وجود دارد که هنگام تعریف آرایه همان لحظه مقدار دهی آن را انجام دهیم
double[] balance = { 2340.0, 4523.69, 3421.0};
  1. در یک خط کد می توانیم بعد از ایجاد کردن بلافاصله مقداردهی آن را انجام دهیم
int [] num = new int[5]  { 20,  77, 118, 110, 115};
  1. برای مقدار دهی می توانیم اندازه آرایه را وارد نکنیم و همانجا شروع به مقدار دهی کنیم
int [] num = new int[]  { 20,  19, 88, 1399, 1400};
  1. می توانیم با روش زیر یک متغیر را در یک متغیر دیگر کپی کنیم. در چنین حالتی هر دو متغیر به یک مکان از حافظه اشاره می کنند.
int [] num = new int[]  { 20,150,186, 698, 7};
int[] score = marks;
دسترسی به المان‌های یک آرایه
یک المان توسط ایندکس‌های آرایه در دسترس خواهد بود. برای اینکار کافیست ایندکس آرایه را درون براکت آن متغییر قرار دهیم. به نمونه‌ی زیر توجه کنید.
 
double salary = darsman[9];
با دستور فوق اطلاعات مربوط به خانه‌ی شماره ۱۰ (ایندکس ۹) در اختیار قرار بگیرد و درون متغییر salary ذخیره گردد.
به مثال زیر توجه کنید، در این مثال می‌خواهیم اطلاعات تک تک درایه‌های یک آرایه با ۱۰ خانه را نمایش دهیم. توجه داشته باشید که به هنگام تعریف آرایه‌هایی از نوع int مقداردهی اولیه بگونه‌ای است که در ابتدا تمام درایه‌ها ۰ می‌باشد. در این مثال تک تک درایه‌ها با عدد ۱۰۰ جمع شده و مقدار حاصله به همراه نمایش ایندکس آنها چاپ می‌شود:
 
using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         int []  n = new int[10]; /* n is an array of 10 integers */
         int i,j;
 
         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ )
         {
            n[ i ] = i + 100;
         }
         
         /* output each array element's value */
         for (j = 0; j < 10; j++ )
         {
            Console.WriteLine("Element[{0}] = {1}", j, n[j]);
         }
         Console.ReadKey();
      }
   }
}
بنابراین خروجی مثال فوق به صورت زیر خواهد بود:
 
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
استفاده از حلقه‌ی foreach
حلقه‌ی foreach به معنای «به ازای هر» می‌باشد. از این حلقه برای دسترسی به تک تک المان‌ها و آیتم‌های یک آرایه استفاده می‌شود تا از تکرار یک دستور خودداری کنیم. به مثال زیر توجه کنید:
using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         int []  narray = new int[5] {1,2,3,4,5}; /* n is an array of 10 integers */
         
         foreach ( int i in narray)
         {
             Console.WriteLine("Element = {0}", i);
         }
         
         Console.ReadKey();
      }
   }
}
در این حالت تک تک درایه‌های یک آرایه چاپ می‌شود و خروجی به صورت زیر خواهد بود:
 
Element = 1
Element = 2
Element = 3
Element = 4
Element = 5
کلام آخر:
بحث آرایه در سی شارپ به اینجا ختم نمی شود. چرا که ما تا اینجای کار آرایه های یک بعدی را مورد بررسی قرار دادیم. اما گونه ای دیگر از آرایه ها وجود دارند که دارای ابعاد متفاوت هستند و به آرایه های چند بعدی معروف هستند.
مثلا اگر بخواهیم یک آرایه دوبعدی تعریف کنیم به صورت زیر عمل می کنیم:
 string [,] names;
یا برای تعریف یک آرایه سه بعدی می نویسیم:
int [ , , ] m;
آرایه ها یکی از پرکاربرد ترین ساختار داده ها به حساب می آیند و ما سعی کردیم تا شما را با مباحثی که در این حوزه قرار می گیرد آشنا کنیم.
به عنوان یک دوست که در این راه تجربه های زیادی کسب کردم به شما توصیه میکنم که اگر در مفاهیم ابتدایی این زبان مثل تعریف متغیرها، دستورات شرطی، حلقه های تکرار و.... تسلط کافی  ندارید از آموزش های مقدماتی سی شارپ غاف نشوید.
+ نوشته شده در  شنبه 6 دی 1399ساعت 18:21  توسط fattahi 

زبانی به نام سی شارپ چیست؟

زبانی به نام سی شارپ چیست؟
امروز می خواهیم درباره اینکه سی شارپ چیست و چه کاربردهایی دارد با شما صحبت کنیم.
سی شارپ چیست؟
سی شارپ یک زبان برنامه نویسی چند منظوره عمومی است که حدود سال 2000 میلادی توسط مایکروسافت ساخته و در سال 2003 به عنوان یک زبان برنامه نویسی استاندارد بین المللی تصویب شد.
حالا نرم افزارهایی که میشود با سی شارپ طراحی کرد
سی شارپ یک زبان سمت سرور است. پس میتوان به عنوان یک زبان بک-اند از آن استفاده کرد. اما این تمام ماجرا نیست.
مایکروسافت با خرید شرکتی به نام Xamarin قدمی بزرگ در مسیر رشد هر چه بیشتر استفاده از #C برداشت. این تکنولوژی امکانی را فراهم کرده است که به سادگی می‌توان به کمک زبان #C برای دستگاه‌های اندرویدی و iOS اپلیکیشن تولید کرد.
اگر کسی به شما گفت که هر چه باشد، اپ‌های زامارین مثل اپ‌هایی که با زبان اصلی آن پلتفرم ایجاد شده‌اند نمی‌شود، با خیال راحت به او بگویید که اشتباه می‌کند. اپ‌های تولید شده به کمک #C و زامارین می‌توانند دقیقا همان کارایی و زیبایی اپ‌های به اصطلاح Native برای اندروید یا iOS را داشته باشند.
اگر نیاز به یک وبسایت دارید، کافیست  #C را صدا بزنید تا به کمک تکنولوژی ASP.Net این امکان را فراهم ‌کند که وب‌سایتی بسیار قدرتمند و در عین حال زیبا ایجاد کنید.
در آخر اینکه میتوانید به کمک سی شارپ نرم‌افزارهای تحت ویندوز و macOS تولید کرد. راستش در چند نسخه اخیر ویندوز، مخصوصا Windows 10، بخش زیادی از خود این سیستم عامل به وسیله زبان #C نوشته شده است.
بازار کار زبان برنامه نویس سی شارپ
علاوه بر پشتیبانی قوی، انعطاف‌پذیری و قدرت بالا  که از خصوصیات بارز سی شارپ هستند، نزدیک به 31% توسعه دهندگان از این زبان برای تولید برنامه های خود استفاده می کنند. همچنین در وب سایت Stackoverflow  برای سی شارپ بیش از یک میلیون موضوع طرح کرده که  از این لحاظ سومین جایگاه را دارد.
 این محبوبیت عامل اصلی افزایش نیاز به نیروی کار باتجربه و حرفه ای می باشد. افرادی که در زمینه برنامه نویسی سی شارپ توانایی کافی را داشته باشند، می توانند به راحتی شغل مورد علاقه خود را بیابند. این شغل ها عبارتند از:
  • طراحی برنامه های ویندوز
  • طراحی کتابخانه و برنامه های مکمل
  • طراحی برنامه‌های تحت وب
  • برنامه‌های موبایل برای آندروید و iOS
  • هوش مصنوعی و یادگیری ماشین
  • بلاکچین و ارز های مجازی
  • اینترنت اشیا
  • طراحی بازی های کامپیوتری و …
آینده سی شارپ چیست
این زبان، تمام نشدنی خواهد بود چرا که نسخه های جدید آن نیز هر چند وقت یکبار توسط مایکروسافت ارائه می‌شود و دارای قابلیت‌های جدیدی است.  اگر بخواهیم درباره‌ی رنکینگ و رتبه‌ی آن در دنیا صحبت کنیم می‌توانیم این طور بگوییم که: سی‌شارپ از دیدگاه‌های مخلتف چهارمین و در برخی پنجمین زبان کاربردی، قدرتمند و محبوب دنیا محسوب می شود.
بنابراین این زبان برنامه نویسی از محبوبیت و اعتبار بسیار بالایی برخوردار است.
در ایران دو زبان برنامه نویسی بخش اعظم نرم افزارها و وب سایت های سازمان های دولتی و خصوصی را فرا گرفته است که C# (ASP.NET)  و جاوا پرچم داران آن هستند.
و در  آخر بشنوید از مزایای سی شارپ:
  1. زبانی شیء گرا

یک  زبان شیء گرای محض که این قابلیت را به ما می دهد که برنامه های قابل نگهداری ماژولار و کدهای قابل استفاده مجدد را ایجاد نماییم. 

  1. مجموعه Garbage خودکار

دارای یک سیستم بسیار کارآمد برای پاک کردن و حذف تمام زباله ها در سیستم است یعنی اگر شما متدی نوشته باشید ک در هیچ جا از آن استفاده نکرده باشید این زبان آن را به صورت خودکار حذف میکند.

  1. عدم بروز مشکل در صورت وجود اختلال در حافظه

زبان برنامه نویسی سی شارپ دارای یک قابلیت عمده در زمینه پشتیبان گیری قوی حافظه می باشد و  در هنگام بروز اختلال در حافظه و سایر مشکلات مشابه خللی ایجاد نمیشود و دارای عملکردی کاملاً عالی نسبت به سایر زبان های دیگر می باشد.

  1. توسعه راحت تر

کتابخانه های class غنی ، پیاده سازی بسیاری از توابع را آسان می کنند. 

  1. Cross Platform

اگر روی دستگاه خود ، فریم ورک NET. را نصب کرده باشیم ، برنامه های ما به خوبی اجرا خواهند شد.

  1. یکپارچگی بهتر

برنامه های کاربردی نوشته شده در فریم ورک NET. ، یکپارچگی و تفسیرپذیری بهتری با دیگر فناوری های NET. خواهند داشت. در واقع #C بر روی CLR اجرا می شود ، و این امر یکپارچگی آن را با مؤلفه های نوشته شده در زبان های دیگر ساده می سازد.

  1. کدنویسی با خوانایی بیشتر

مفاهیم قراردادی در متدهای get-set ، باعث خواناتر شدن کدها می شوند. هم چنین در #C ما نیازی به نگرانی در مورد فایل های هدر نداریم.

  1. کمبود انتخاب

هنگامی که در بستر مایکروسافت کار می کنیم ، برای همه چیز ، ابزاری داریم. از این رو ، اساساً ، ما نیازهای خود را با ابزار مطابقت می دهیم و از آنها استفاده می کنیم. 

خب دوستان مبحث ما درباره سی شارپ چیست به پایان رسید و امیدواریم که از این مطلب لذت برده باشید؛ موفق باشید.
+ نوشته شده در  پنجشنبه 4 دی 1399ساعت 18:43  توسط fattahi